package cn.iocoder.yudao.module.of.controller.admin.meetingInfo.vo;

import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO;
import cn.iocoder.yudao.module.of.controller.admin.taskhandler.vo.TaskHandlerRespVO;
import cn.iocoder.yudao.module.of.controller.admin.taskinfo.dto.DocumentDTO;
import cn.iocoder.yudao.module.of.controller.admin.taskinfo.dto.MeetingDTO;
import cn.iocoder.yudao.module.of.dal.dataobject.taskhandler.TaskHandlerDO;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 会议信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MeetingTaskRespVO {

    /**
     * 主键
     */
    @TableId
    private Long id;
    /**
     * 任务名称
     */
    private String taskName;
    /**
     * 任务描述
     */
    private String taskDesc;
    /**
     * 任务编号
     */
    private String taskCode;
    /**
     * 任务来源: 1中心来文、2会议、3领导交办、4其它
     */
    private Integer taskFrom;

    /**
     * 任务来源扩展：其它or会议 用得到
     */
    private String taskFromExt;
    /**
     * 任务级别: 1主任务、2从任务
     */
    private Integer taskLevel;

    /**
     * 任务类型: 1全年、2常规
     */
    private Integer taskType;

    /**
     * 开始时间
     */
    private LocalDateTime startTime;
    /**
     * 结束时间
     */
    private LocalDateTime endTime;
    /**
     * 父级任务
     */
    private Long parentId;

    /**
     * 公文ID
     */
    private Long documentId;

    /**
     * 公文信息
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private DocumentDTO taskDocument;

    /**
     * 会议ID
     */
    private Long meetingId;


    /**
     * 附件
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<Long> taskAttachment;
    /**
     * 状态：0草稿、1待审批、2审批通过、3审批不通过、4跟进中、5挂起、99结束
     */
    private Integer status;

    /**
     * 状态名称
     */
    private String statusName;

    /**
     * 优先级ID
     */
    private Integer priorityId;

    /**
     * 优先级名称
     */
    private String priorityName;


    /**
     * 主办部门ID
     */
    private Long mainRespDeptId;
    /**
     * 主办部门名称
     */
    private String mainRespDeptName;
    /**
     * 协办部门ID
     */
    private Long lesserRespDeptId;
    /**
     * 协办部门名称
     */
    private String lesserRespDeptName;

    /**
     * 主办人ID
     */
    private Long mainRespUserId;
    /**
     * 主办人名称
     */
    private String mainRespUserName;
    /**
     * 协办人名称
     */
    private Long lesserRespUserId;

    private String lesserRespUserName;
    /**
     * 反馈内容
     */
    private String feedbackContent;

    /**
     * 成果物 （反馈附件）
     */
    private List<FileDO> feedbackAttachList;


    /**
     * 创建人这
     */
    private Long creator;

    private List<TaskHandlerRespVO> taskHandlerList;


    private List<FileDO> taskAttachmentList;

    private List children;


}